欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-动态规划理论知识动态规划当前状态是由前一个状态推导出来的,而贪心没有状态的转移动态规划需要借助dp数组,可能是一维也可能是二维的首先要明确dp数组是用来干什么的,下标对应什么状态如何转移?也就是理清递推公式dp数组如何初始化如何遍历举个栗子模拟推导一遍LeetCode509.斐波那契数分析F(n)=F(n-1)+F(n-2),其中n>1代码classSolution{publicintfib(intn){if(nLeetCode70.爬楼梯分析错误没有理清递推函数classSolution{publicintclimbStairs(in
欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-动态规划理论知识动态规划当前状态是由前一个状态推导出来的,而贪心没有状态的转移动态规划需要借助dp数组,可能是一维也可能是二维的首先要明确dp数组是用来干什么的,下标对应什么状态如何转移?也就是理清递推公式dp数组如何初始化如何遍历举个栗子模拟推导一遍LeetCode509.斐波那契数分析F(n)=F(n-1)+F(n-2),其中n>1代码classSolution{publicintfib(intn){if(nLeetCode70.爬楼梯分析错误没有理清递推函数classSolution{publicintclimbStairs(in
一、题目大意https://leetcode.cn/problems/base-7给定一个整数num,将其转化为7进制,并以字符串形式输出。示例1:输入:num=100输出:"202"示例2:输入:num=-7输出:"-10"提示:-107 二、解题思路输入一个整数,输出一个字符串,表示其七进制。进制转换类的题,通常是利用除法和取模来进行计算,同时也要注意一些细节,如负数和零。如果输出是数字类型而非字符串,则也需要考虑是否会超出整数上下界。举例:100,求其7进制100/7=14......214/7=2......0七进制数为最后一位商+余数倒排三、解题方法3.1Java实现publiccl
一、题目大意https://leetcode.cn/problems/count-primes给定整数n,返回所有小于非负整数 n 的质数的数量。示例1:输入:n=10输出:4解释:小于10的质数一共有4个,它们是2,3,5,7。示例2:输入:n=0输出:0示例3:输入:n=1输出:0提示:0二、解题思路输入一个整数,输出也是一个整数,表示小于输入数的质数的个数。埃拉托斯特尼筛法,是判断一个整数是否是质数的方法。并且它可以在判断一个整数n时,同时判断所小于n的整数,因此非常适合这个问题。其原理是:从1到n遍历,假设当前遍历到m,则把所有小于n的、且是m的倍数的整数标为和数;遍历完成后,没有被标
一、题目大意标签:贪心https://leetcode.cn/problems/non-decreasing-array给你一个长度为 n 的整数数组 nums ,请你判断在最多改变 1个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i(0示例1:输入:nums=[4,2,3]输出:true解释:你可以通过把第一个4变成1来使得它成为一个非递减数列。示例2:输入:nums=[4,2,1]输出:false解释:你不能在只改变一个元素的情况下将其变为非递减数列。提示:n==nums.length1-105 二、解题思路最多只有一次修改某个数字的机会
一、题目大意标签:贪心https://leetcode.cn/problems/queue-reconstruction-by-height假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个people[i]=[hi,ki]表示第i个人的身高为hi,前面正好有ki个身高大于或等于hi的人。请你重新构造并返回输入数组 people所表示的队列。返回的队列应该格式化为数组queue,其中queue[j]=[hj,kj]是队列中第j个人的属性(queue[0]是排在队列前面的人)。示例1:输入:people=[[7,0],[4,4],[7,1],[5,0
一、题目大意标签:贪心https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii给你一个整数数组prices,其中 prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润 。示例1:输入:prices=[7,1,5,3,6,4]输出:7解释:在第2天(股票价格=1)的时候买入,在第3天(股票价格=5)的时候卖出,这笔交易所能获得利润=5-1=4。 随后,在第4天(股票价格=3)的时候买入,在第5天(股
一、题目大意标签:贪心https://leetcode.cn/problems/partition-labels字符串S由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。示例:输入:S="ababcbacadefegdehijhklij"输出:[9,7,8]解释:划分结果为"ababcbaca","defegde","hijhklij"。每个字母最多出现在一个片段中。像"ababcbacadefegde","hijhklij"的划分是错误的,因为划分的片段数较少。提示:S的长度在[1,500]之间。S只包含小写字母'a
欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯总结适用问题组合问题:N个数里面按一定规则找出k个数的集合排列问题:N个数按一定规则全排列,有几种排列方式切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集棋盘问题:N皇后,解数独等等通用模板result存放结果集path某个符合条件的结果voidbacktracking(参数){if(终止条件){result.add(path);return;}for(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)){处理节点;backtracking(路径,选择列表);//递归回溯,撤销处理结
一、题目大意https://leetcode.cn/problems/base-7给定一个整数num,将其转化为7进制,并以字符串形式输出。示例1:输入:num=100输出:"202"示例2:输入:num=-7输出:"-10"提示:-107 二、解题思路输入一个整数,输出一个字符串,表示其七进制。进制转换类的题,通常是利用除法和取模来进行计算,同时也要注意一些细节,如负数和零。如果输出是数字类型而非字符串,则也需要考虑是否会超出整数上下界。举例:100,求其7进制100/7=14......214/7=2......0七进制数为最后一位商+余数倒排三、解题方法3.1Java实现publiccl